package datos;

// Generated 14/03/2010 01:41:37 by Hibernate Tools 3.2.4.GA

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Profesional generated by hbm2java
 */
@Entity
@Table(name = "profesional", catalog = "peluqueria")
public class Profesional implements java.io.Serializable {

	private Integer idProfesional;
	private String nombre;
	private String apellido;
	private double porcentajeColor;
	private Double porcentajeCorte;
	private String telefono;
	private String direccion;
	private String celular;
	private String estado;
	private String email;
	private String tipoHorarioSemana;
	private Date entrada1;
	private Date salida1;
	private Date entrada2;
	private Date salida2;
	private String tipoHorarioViernes;
	private Date entrada1Viernes;
	private Date salida1Viernes;
	private Date entrada2Viernes;
	private Date salida2Viernes;
	private String tipoHorarioSabado;
	private Date entrada1Sabado;
	private Date salida1Sabado;
	private Date entrada2Sabado;
	private Date salida2Sabado;
	private Set<ProfesionalRealizaServicio> profesionalRealizaServicios = new HashSet<ProfesionalRealizaServicio>(
			0);
	private Set<Reserva> reservas = new HashSet<Reserva>(0);

	public Profesional() {
	}

	public Profesional(String nombre, String apellido, double porcentajeColor,
			String tipoHorarioSemana, Date entrada1, Date salida1) {
		this.nombre = nombre;
		this.apellido = apellido;
		this.porcentajeColor = porcentajeColor;
		this.tipoHorarioSemana = tipoHorarioSemana;
		this.entrada1 = entrada1;
		this.salida1 = salida1;
	}

	public Profesional(String nombre, String apellido, double porcentajeColor,
			Double porcentajeCorte, String telefono, String direccion,
			String celular, String estado, String tipoHorarioSemana,
			Date entrada1, Date salida1, Date entrada2, Date salida2,
			String tipoHorarioViernes, Date entrada1Viernes,
			Date salida1Viernes, Date entrada2Viernes, Date salida2Viernes,
			String tipoHorarioSabado, Date entrada1Sabado, Date salida1Sabado,
			Date entrada2Sabado, Date salida2Sabado,
			Set<ProfesionalRealizaServicio> profesionalRealizaServicios,
			Set<Reserva> reservas) {
		this.nombre = nombre;
		this.apellido = apellido;
		this.porcentajeColor = porcentajeColor;
		this.porcentajeCorte = porcentajeCorte;
		this.telefono = telefono;
		this.direccion = direccion;
		this.celular = celular;
		this.estado = estado;
		this.tipoHorarioSemana = tipoHorarioSemana;
		this.entrada1 = entrada1;
		this.salida1 = salida1;
		this.entrada2 = entrada2;
		this.salida2 = salida2;
		this.tipoHorarioViernes = tipoHorarioViernes;
		this.entrada1Viernes = entrada1Viernes;
		this.salida1Viernes = salida1Viernes;
		this.entrada2Viernes = entrada2Viernes;
		this.salida2Viernes = salida2Viernes;
		this.tipoHorarioSabado = tipoHorarioSabado;
		this.entrada1Sabado = entrada1Sabado;
		this.salida1Sabado = salida1Sabado;
		this.entrada2Sabado = entrada2Sabado;
		this.salida2Sabado = salida2Sabado;
		this.profesionalRealizaServicios = profesionalRealizaServicios;
		this.reservas = reservas;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "ID_Profesional", unique = true, nullable = false)
	public Integer getIdProfesional() {
		return this.idProfesional;
	}

	public void setIdProfesional(Integer idProfesional) {
		this.idProfesional = idProfesional;
	}

	@Column(name = "nombre", nullable = false, length = 50)
	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@Column(name = "apellido", nullable = false, length = 50)
	public String getApellido() {
		return this.apellido;
	}

	public void setApellido(String apellido) {
		this.apellido = apellido;
	}

	@Column(name = "PorcentajeColor", nullable = false, precision = 22, scale = 0)
	public double getPorcentajeColor() {
		return this.porcentajeColor;
	}

	public void setPorcentajeColor(double porcentajeColor) {
		this.porcentajeColor = porcentajeColor;
	}

	@Column(name = "PorcentajeCorte", precision = 22, scale = 0)
	public Double getPorcentajeCorte() {
		return this.porcentajeCorte;
	}

	public void setPorcentajeCorte(Double porcentajeCorte) {
		this.porcentajeCorte = porcentajeCorte;
	}

	@Column(name = "telefono", length = 40)
	public String getTelefono() {
		return this.telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	@Column(name = "direccion", length = 50)
	public String getDireccion() {
		return this.direccion;
	}

	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}

	@Column(name = "celular", length = 40)
	public String getCelular() {
		return this.celular;
	}

	public void setCelular(String celular) {
		this.celular = celular;
	}

	@Column(name = "estado", length = 8)
	public String getEstado() {
		return this.estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}
	
	@Column(name = "email", length = 50)
	public String getEmail() {
		return this.email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	@Column(name = "tipo_horario_semana", nullable = false, length = 8)
	public String getTipoHorarioSemana() {
		return this.tipoHorarioSemana;
	}

	public void setTipoHorarioSemana(String tipoHorarioSemana) {
		this.tipoHorarioSemana = tipoHorarioSemana;
	}

	@Temporal(TemporalType.TIME)
	@Column(name = "entrada1", nullable = false, length = 8)
	public Date getEntrada1() {
		return this.entrada1;
	}

	public void setEntrada1(Date entrada1) {
		this.entrada1 = entrada1;
	}

	@Temporal(TemporalType.TIME)
	@Column(name = "salida1", nullable = false, length = 8)
	public Date getSalida1() {
		return this.salida1;
	}

	public void setSalida1(Date salida1) {
		this.salida1 = salida1;
	}

	@Temporal(TemporalType.TIME)
	@Column(name = "entrada2", length = 8)
	public Date getEntrada2() {
		return this.entrada2;
	}

	public void setEntrada2(Date entrada2) {
		this.entrada2 = entrada2;
	}

	@Temporal(TemporalType.TIME)
	@Column(name = "salida2", length = 8)
	public Date getSalida2() {
		return this.salida2;
	}

	public void setSalida2(Date salida2) {
		this.salida2 = salida2;
	}

	@Column(name = "tipo_horario_viernes", length = 8)
	public String getTipoHorarioViernes() {
		return this.tipoHorarioViernes;
	}

	public void setTipoHorarioViernes(String tipoHorarioViernes) {
		this.tipoHorarioViernes = tipoHorarioViernes;
	}

	@Temporal(TemporalType.TIME)
	@Column(name = "entrada1_viernes", length = 8)
	public Date getEntrada1Viernes() {
		return this.entrada1Viernes;
	}

	public void setEntrada1Viernes(Date entrada1Viernes) {
		this.entrada1Viernes = entrada1Viernes;
	}

	@Temporal(TemporalType.TIME)
	@Column(name = "salida1_viernes", length = 8)
	public Date getSalida1Viernes() {
		return this.salida1Viernes;
	}

	public void setSalida1Viernes(Date salida1Viernes) {
		this.salida1Viernes = salida1Viernes;
	}

	@Temporal(TemporalType.TIME)
	@Column(name = "entrada2_viernes", length = 8)
	public Date getEntrada2Viernes() {
		return this.entrada2Viernes;
	}

	public void setEntrada2Viernes(Date entrada2Viernes) {
		this.entrada2Viernes = entrada2Viernes;
	}

	@Temporal(TemporalType.TIME)
	@Column(name = "salida2_viernes", length = 8)
	public Date getSalida2Viernes() {
		return this.salida2Viernes;
	}

	public void setSalida2Viernes(Date salida2Viernes) {
		this.salida2Viernes = salida2Viernes;
	}

	@Column(name = "tipo_horario_sabado", length = 8)
	public String getTipoHorarioSabado() {
		return this.tipoHorarioSabado;
	}

	public void setTipoHorarioSabado(String tipoHorarioSabado) {
		this.tipoHorarioSabado = tipoHorarioSabado;
	}

	@Temporal(TemporalType.TIME)
	@Column(name = "entrada1_sabado", length = 8)
	public Date getEntrada1Sabado() {
		return this.entrada1Sabado;
	}

	public void setEntrada1Sabado(Date entrada1Sabado) {
		this.entrada1Sabado = entrada1Sabado;
	}

	@Temporal(TemporalType.TIME)
	@Column(name = "salida1_sabado", length = 8)
	public Date getSalida1Sabado() {
		return this.salida1Sabado;
	}

	public void setSalida1Sabado(Date salida1Sabado) {
		this.salida1Sabado = salida1Sabado;
	}

	@Temporal(TemporalType.TIME)
	@Column(name = "entrada2_sabado", length = 8)
	public Date getEntrada2Sabado() {
		return this.entrada2Sabado;
	}

	public void setEntrada2Sabado(Date entrada2Sabado) {
		this.entrada2Sabado = entrada2Sabado;
	}

	@Temporal(TemporalType.TIME)
	@Column(name = "salida2_sabado", length = 8)
	public Date getSalida2Sabado() {
		return this.salida2Sabado;
	}

	public void setSalida2Sabado(Date salida2Sabado) {
		this.salida2Sabado = salida2Sabado;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "profesional")
	public Set<ProfesionalRealizaServicio> getProfesionalRealizaServicios() {
		return this.profesionalRealizaServicios;
	}

	public void setProfesionalRealizaServicios(
			Set<ProfesionalRealizaServicio> profesionalRealizaServicios) {
		this.profesionalRealizaServicios = profesionalRealizaServicios;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "profesional")
	public Set<Reserva> getReservas() {
		return this.reservas;
	}

	public void setReservas(Set<Reserva> reservas) {
		this.reservas = reservas;
	}
	public String toString(){
		return nombre;
	}
	
}
